package com.neelsys.visualisation.domain;

import static org.neo4j.graphdb.Direction.INCOMING;

import java.util.HashSet;
import java.util.Set;

import org.springframework.data.neo4j.annotation.Indexed;
import org.springframework.data.neo4j.annotation.RelatedTo;

@Indexed
public class MajorCombination extends BaseNodeEntity {

	
	@Indexed
	String id;
	
	String minDuration;
	
	@Indexed
	String majorIdentifier;
	
	@Indexed
	String courseIdentifier;
	
	String majorDescription;
	
	boolean hasEntranceTest;

	@Indexed
	CourseDesignator courseDesignator;
	
	@RelatedTo(type = "OFFERED_MAJORS", direction = INCOMING)
	College colleges;
	
	@RelatedTo(elementClass = EntranceTest.class, type = "PRE_REQ_FOR")
    private Set<EntranceTest> entranceTests=new HashSet<EntranceTest>();
	
    @RelatedTo(elementClass = MajorCombination.class,type = "ELIGIBLE_FOR")
    private Set<MajorCombination> nextCourses=new HashSet<MajorCombination>();
    
    @RelatedTo(elementClass = Jobs.class,type = "POSSIBLE_JOBS")
    private Set<Jobs> possibleJobs=new HashSet<Jobs>();



	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public CourseDesignator getCourseDesigntator() {
		return courseDesignator;
	}

	public void setCourseDesigntator(CourseDesignator courseDesigntator) {
		this.courseDesignator = courseDesigntator;
	}

	public College getColleges() {
		return colleges;
	}

	public void setColleges(College colleges) {
		this.colleges = colleges;
	}

	public Set<EntranceTest> getEntranceTests() {
		return entranceTests;
	}

	public void setEntranceTests(Set<EntranceTest> entranceTests) {
		this.entranceTests = entranceTests;
	}

	public String getMajorDescription() {
		return majorDescription;
	}

	public void setMajorDescription(String majorDescription) {
		this.majorDescription = majorDescription;
	}

	public Set<MajorCombination> getNextCourses() {
		return nextCourses;
	}

	public void setNextCourses(Set<MajorCombination> nextCourses) {
		this.nextCourses = nextCourses;
	}

	public Set<Jobs> getPossibleJobs() {
		return possibleJobs;
	}

	public void setPossibleJobs(Set<Jobs> possibleJobs) {
		this.possibleJobs = possibleJobs;
	}

	public String getMinDuration() {
		return minDuration;
	}

	public void setMinDuration(String minDuration) {
		this.minDuration = minDuration;
	}

	public String getMajorIdentifier() {
		return majorIdentifier;
	}

	public void setMajorIdentifier(String majorIdentifier) {
		this.majorIdentifier = majorIdentifier;
	}

	public String getCourseIdentifier() {
		return courseIdentifier;
	}

	public void setCourseIdentifier(String courseIdentifier) {
		this.courseIdentifier = courseIdentifier;
	}

	public boolean isHasEntranceTest() {
		return hasEntranceTest;
	}

	public void setHasEntranceTest(boolean hasEntranceTest) {
		this.hasEntranceTest = hasEntranceTest;
	}

	
	

}
